package blog.open1111.controller.admin;

import blog.open1111.entity.Link;
import blog.open1111.entity.PageBean;
import blog.open1111.service.LinkService;
import blog.open1111.util.ResponseUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by dengwubo on 2017/9/8.
 */
@Controller
@RequestMapping("/admin/link")
@SuppressWarnings("all")
public class LinkAdminController {

    @Autowired
    private LinkService linkService;

    @RequestMapping("/list")
    public String list(@RequestParam(value = "page",required = false)String page,
                       @RequestParam(value = "rows",required = false)String rows,
                       HttpServletResponse response) throws Exception{

        PageBean pageBean = new PageBean(Integer.parseInt(page),Integer.parseInt(rows));
        Map<String,Object> map = new HashMap<>();
        map.put("start",pageBean.getStart());
        map.put("size",pageBean.getPageSize());
        List<Link> linkList = linkService.list(map);
        Long total = linkService.getTotal(map);
        JSONObject result = new JSONObject();
        JSONArray jsonArray = JSONArray.fromObject(linkList);
        result.put("rows",jsonArray);
        result.put("total",total);
        ResponseUtil.write(response,result);
        return null;
    }

    @RequestMapping("/save")
    public String list(Link link,HttpServletResponse response)throws Exception{
       int resultTotal = 0;// 操作的记录条数
        if (link.getId()==null){
            resultTotal= linkService.add(link);
        }else{
            resultTotal=linkService.update(link);
        }
        JSONObject result = new JSONObject();
        if (resultTotal>0){
            result.put("success",true);
        }else{
            result.put("success",false);
        }
        ResponseUtil.write(response,result);
        return null;
    }
    @RequestMapping("/delete")
    public String delete(@RequestParam(value = "ids")String ids,HttpServletResponse response)throws Exception{
        String [] idsStr = ids.split(",");
        JSONObject result = new JSONObject();
        Arrays.asList(ids).stream().forEach(id->{
            linkService.delete(Integer.parseInt(id));
        });
        result.put("success",true);
        ResponseUtil.write(response,result);

        return null;
    }



}
